//
//  CRUserManager.h
//  CRChatRoom
//
//  Created by CuiFengshuai on 15/11/20.
//  Copyright © 2015年 SecondGroup. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface CRUserManager : NSObject
/** 管理用户登录注册 */
@property (nonatomic, strong) AVUser *avuser;


+ (CRUserManager *)defaultManager;
/**
 *  登录方法
 *
 *  @param username 用户名
 *  @param password 密码
 *  @param success  成功的回调方法
 *  @param failure  失败的回调方法
 */
- (void)loginWithUsername:(NSString *)username password:(NSString *)password success:(void(^)())success failure:(void(^)(NSError *error))failure;

/**
 *  获取手机注册验证码
 *
 *  @param username 用户名
 *  @param password 密码
 *  @param email    手机号码
 */
- (void)registerWithUsername:(NSString *)username password:(NSString *)password phone:(NSString *)phone;
/**
 *  注册方法
 *
 *  @param phone   手机号
 *  @param success 成功的回调方法
 *  @param failure 失败的回调方法
 */
- (void)verifyWithMobilePhone:(NSString *)phone success:(void(^)())success failure:(void(^)(NSError *error))failure;
/**
 *  获取重置密码的验证码
 *
 *  @param phone   手机号
 *  @param success 成功的回调方法
 *  @param failure 失败的回调方法
 */
- (void)requestPasswordResetWithPhoneNumber:(NSString *)phone success:(void(^)())success failure:(void(^)(NSError *error))failure;

/**
 *  重置密码
 *  @param newPWD  新的密码
 *  @param code    验证码
 *  @param success 成功的回调方法
 *  @param failure 失败的回调方法
 */
- (void)resetPasswordWithSmsCode:(NSString *)code newPassword:(NSString *)newPWD success:(void(^)())success failure:(void(^)(NSError *error))failure;
/**
 *  修改密码
 *
 *  @param oldpwd  原始密码
 *  @param newPwd  新密码
 *  @param success 成功的回调方法
 *  @param failure 失败的回调方法
 */
- (void)updatePasswordWithOldpwd:(NSString *)oldpwd newPwd:(NSString *)newPwd success:(void(^)())success failure:(void(^)(NSError *error))failure;
/**
 *  发送消息
 *
 *  @param myClientID    我的ID
 *  @param otherClientID 好友的ID
 *  @param message       要发送的消息
 */
- (void)sendMessageWithMyClientID:(NSString *)myClientID otherClientID:(NSString *)otherClientID Message:(NSString *)message;
/**
 *  接收消息
 *
 *  @param mydelegate    我的ID
 *  @param otherClientID 好友的ID
 */
- (void)receiveMessageWithDelegate:(id)mydelegate myClientID:(NSString *)myClientID;
/**
 *  退出登录
 */
- (void)logoutProcedure;

@end
